package com.zelix;

import java.util.*;

abstract class ar
{

    tq a;
    boolean b;
    boolean c;
    boolean d;
    String e;
    String f;
    Integer g;
    dr h[];
    static final String i[];
    static String j;
    private static String z[];

    ar()
    {
    }

    void a(dr dr1, int k, StringBuffer stringbuffer)
    {
        String as[];
        int l;
        boolean flag;
        flag = ec.b;
        as = dr1.b();
        if(k == 1 || as == null)
            return;
        if(k != 2 && k != 3)
            break MISSING_BLOCK_LABEL_150;
        stringbuffer.append("(");
        l = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
label0:
        {
            if(k == 3)
            {
                stringbuffer.append(as[l]);
                if(!flag)
                    break label0;
            }
            if(k == 2)
            {
                String s = as[l];
                int i1 = s.lastIndexOf(".");
                if(i1 > -1)
                    s = s.substring(i1 + 1);
                stringbuffer.append(s);
            }
        }
        if(l < as.length - 1)
            stringbuffer.append(z[2]);
        l++;
_L2:
        if(l < as.length) goto _L1; else goto _L3
_L3:
        stringbuffer.append(")");
    }

    void a(StringBuffer stringbuffer)
    {
        if(f != null && f.length() > 0)
        {
            stringbuffer.append("(" + f);
            if(g != null)
                stringbuffer.append(":" + g.intValue());
            stringbuffer.append(")");
        }
    }

    String a()
    {
        return a.e();
    }

    final String a(int k, se se1)
    {
        StringBuffer stringbuffer;
        boolean flag;
        flag = ec.b;
        if(h != null)
            Arrays.sort(h);
        stringbuffer = new StringBuffer(64);
        if(!a.k() || !c)
            break MISSING_BLOCK_LABEL_299;
        stringbuffer.append(j + z[1] + e);
        if(h == null || h.length == 0) goto _L2; else goto _L1
_L1:
        if(h.length != 1) goto _L4; else goto _L3
_L3:
        stringbuffer.append("." + h[0].a());
        a(h[0], k, stringbuffer);
        a(stringbuffer);
        if(!flag) goto _L2; else goto _L4
_L4:
        String s;
        int l;
        s = zu.a(stringbuffer.length() + 1, ' ');
        l = 0;
        if(!flag) goto _L6; else goto _L5
_L5:
label0:
        {
            if(l == 0)
            {
                stringbuffer.append(".");
                if(!flag)
                    break label0;
            }
            stringbuffer.append(s);
        }
        stringbuffer.append(h[l].a());
        a(h[l], k, stringbuffer);
        if(l == 0)
        {
            a(stringbuffer);
            stringbuffer.append(zo.e);
            if(!flag)
                continue; /* Loop/switch isn't completed */
        }
        if(l < h.length - 1)
            stringbuffer.append(zo.e);
        l++;
_L6:
        if(l < h.length) goto _L5; else goto _L2
_L2:
        stringbuffer.append(zo.e);
        if(!flag)
            break MISSING_BLOCK_LABEL_480;
        StringTokenizer stringtokenizer;
        s = a.c();
        if(a.j() || a.k() && !c)
        {
            stringbuffer.append(j);
            stringbuffer.append(s);
            if(!flag)
                break MISSING_BLOCK_LABEL_472;
        }
        if(se1 == null)
            break MISSING_BLOCK_LABEL_465;
        stringtokenizer = new StringTokenizer(s, z[0], true);
        if(!flag) goto _L8; else goto _L7
_L7:
        String s1 = stringtokenizer.nextToken();
        if(s1.equals(" ") || s1.equals(":"))
        {
            stringbuffer.append(s1);
            if(!flag)
                continue; /* Loop/switch isn't completed */
        }
        String s2 = se1.f(s1);
        if(s2 != null)
        {
            stringbuffer.append(s2);
            if(!flag)
                continue; /* Loop/switch isn't completed */
        }
        stringbuffer.append(s1);
_L8:
        if(stringtokenizer.hasMoreTokens()) goto _L7; else goto _L9
_L9:
        if(!flag)
            break MISSING_BLOCK_LABEL_472;
        stringbuffer.append(s);
        stringbuffer.append(zo.e);
        return stringbuffer.toString();
    }

    String[] a(Vector vector, StringBuffer stringbuffer, se se1)
    {
        int k;
        String as[];
        int l;
        boolean flag;
        flag = ec.b;
        k = vector.size();
        as = new String[k];
        l = 0;
        if(!flag) goto _L2; else goto _L1
_L1:
        String s = (String)vector.get(l);
        as[l] = a(s, se1);
        stringbuffer.append(as[l]);
        if(l < k - 1)
            stringbuffer.append(z[2]);
        l++;
_L2:
        if(l >= k)
            return as;
        if(true) goto _L1; else goto _L3
_L3:
    }

    String a(String s, se se1)
    {
        String s1;
label0:
        {
            int k = s.indexOf("[");
            if(k != -1)
            {
                s1 = s.substring(k);
                s = s.substring(0, k);
                if(!ec.b)
                    break label0;
            }
            s1 = "";
        }
        String s2 = se1.f(s);
        if(s2 == null)
            s2 = s;
        return s2 + s1;
    }

    String b()
    {
        return e;
    }

    boolean c()
    {
        return a.j();
    }

    boolean d()
    {
        return d;
    }

    public boolean e()
    {
        return c;
    }

    boolean f()
    {
        return h != null && h.length == 1 && h[0].a().equals(z[3]);
    }

    boolean g()
    {
        return a.k();
    }

    final boolean a(qq qq1, se se1)
        throws ec
    {
        String s;
label0:
        {
label1:
            {
                s = qq1.a();
                String s1 = se1.f(s);
                if(s1 == null)
                    break label0;
                c = true;
                e = s1;
                String s2 = se1.g(s1);
                if(s2 != null)
                    f = s2;
                if(!qq1.d())
                    break label1;
                int k = qq1.b();
                if(k < 0)
                    throw new ec(z[6] + k + z[7] + qq1.c() + z[8]);
                if(se1.e())
                {
                    Integer integer = se1.a(s1, k);
                    if(integer != null)
                    {
                        g = integer;
                        if(!ec.b)
                            break label1;
                    }
                    throw new ec(z[4] + k + z[9] + qq1.c() + z[5]);
                }
                g = new Integer(k);
            }
            b = true;
            return true;
        }
        e = s;
        c = false;
        b = false;
        return false;
    }

    private static String z(char[] chs) {
        for (int i = 0; i < chs.length; i++) {
            byte key = 0;
            switch (i % 5) {
                case 0: // '\0'
                    key = 0x64;
                    break;

                case 1: // '\001'
                    key = 83;
                    break;

                case 2: // '\002'
                    key = 64;
                    break;

                case 3: // '\003'
                    key = 76;
                    break;

                default:
                    key = 26;
                    break;
            }
            chs[i] ^= key;
        }
        return new String(chs).intern();
    }

    static
    {
        String as[];
        as = new String[10];
        as[0] = "^s";
        as[1] = "\005'`";
        as[2] = "Hs";
        as[3] = "\027'!8s\007";
        as[4] = "(:.):\n&-.\177\026sg";
        as[5] = "Cs##o\b7`\"u\020s\"):\t24/r\0017nlY\f2.+\177D?/+:\000<%?:\n<4ly\013!2)i\024<.(:\020<`#x\002&3/{\0206$lx\035'%/u\0006n";
        as[6] = "(:.):\n&-.\177\026sb";
        as[7] = "Fs)?:\n6'-n\r%%ls\nsg";
        as[8] = "C}";
        as[9] = "Cs)\":C";
        for(int i=0;i<as.length;i++){
            as[i] = z(as[i].toCharArray());
        }
        z = as;
        i = new String[0];
        j = zu.a(4, ' ');
    }
}